诊断实例的健康状态

实例健康诊断功能可以对实例的系统状态、网络状态、磁盘状态等进行全方位的诊断,帮助您了解实例的健康状态,及时发现并解决常见的问题。

前提条件

  • 在您使用实例费用及安全行为审计诊断功能时,系统会检查当前账号是否已有服务关联角色AliyunServiceRoleForECSSelfService,如果不存在则会弹出提示,在您确认提示信息后系统会自动创建服务关联角色AliyunServiceRoleForECSSelfService

    AliyunServiceRoleForECSSelfService包含系统权限策略AliyunServiceRolePolicyForECSSelfService,您无法添加、修改或删除权限。

    展开查看AliyunServiceRolePolicyForECSSelfService权限内容

    {
      "Version": "1",
      "Statement": [
        {
          "Action": [
            "ecs:StartInstance",
            "ecs:StopInstance",
            "ecs:DescribeInstances",
            "ecs:CreateSnapshot",
            "ecs:DescribeSnapshots",
            "ecs:DeleteSnapshot",
            "ecs:DescribeDisks",
            "ecs:DescribeDisksFullStatus",
            "ecs:ResetDisk",
            "ecs:DescribeInvocationResults",
            "ecs:DescribeInvocations",
            "ecs:RunCommand",
            "ecs:CreateDiagnosticReport",
            "oos:StartExecution",
            "oos:ListExecutions",
            "oos:ListExecutionLogs",
            "oos:ListTaskExecutions",
            "oos:CancelExecution",
            "actiontrail:LookupEvents"
          ],
          "Resource": "*",
          "Effect": "Allow"
        },
        {
          "Action": "ram:DeleteServiceLinkedRole",
          "Resource": "*",
          "Effect": "Allow",
          "Condition": {
            "StringEquals": {
              "ram:ServiceName": "selfservice.ecs.aliyuncs.com"
            }
          }
        }
      ]
    }

    如果您使用RAM用户进行实例费用及安全行为审计诊断,需先联系阿里云账号授权RAM用户拥有创建关联角色的权限。具体操作,请参见通过脚本编辑模式创建自定义权限策略为RAM用户授权

    阿里云账号授权RAM用户使用实例自助问题排查功能的权限策略内容如下。其中,<account ID>是变量,需替换为阿里云账号的UID。

    {
        "Statement": [
            {
                "Action": [
                    "ram:CreateServiceLinkedRole"
                ],
                "Resource": "acs:ram:*:<account ID>:role/*",
                "Effect": "Allow",
                "Condition": {
                    "StringEquals": {
                        "ram:ServiceName": [
                            "selfservice.ecs.aliyuncs.com"
                        ]
                    }
                }
            }
        ],
        "Version": "1"
    }
  • 如果问题场景为全面体检或者实例网络异常,请确保待检测实例满足以下条件:

    • 实例规格:属于在售的实例规格族。更多信息,请参见实例规格族

      说明

      已停售的实例规格族不支持实例健康诊断功能。

    • 实例状态:处于运行中(Running)状态。

    • 操作系统:如果您选择的问题场景中会同时检测实例操作系统内的配置,需要确保实例操作系统符合下表所述的条件。

      操作系统架构

      操作系统版本

      操作系统内配置

      x86_64位

      • Windows Server 2008及更高版本

      • Alibaba Cloud Linux 2/3

      • AlmaLinux 8.x及更高版本

      • Anolis OS 7.x/8.x

      • CentOS 7.x/8.x

      • CentOS Stream 8及更高版本

      • Debian 8.x及更高版本

      • Fedora 33/34

      • OpenSUSE 15.x/42.x

      • Rocky Linux 8.x及更高版本

      • SUSE Linux Enterprise Server 12.x/15.x

      • Ubuntu 16.04/18.04/20.04/24.04

      • Python版本:Python3.6及以版本

      • 已安装云助手Agent。具体操作,请参见安装云助手Agent

      说明

      表中未列出的操作系统发行版本均不支持,对于不支持的发行版本上的操作系统诊断运行效果不作保证。

  • 如果问题场景为实例无法启动,请确保待检测实例状态满足以下条件:

    • 实例状态:处于已停止(Stopped)状态。

    • 操作系统:选择的问题场景中会同时检测实例操作系统内的配置,需要确保实例操作系统符合下表所述的条件。

      操作系统架构

      操作系统版本

      x86_64位

      • Windows Server 2008及更高版本

      • Alibaba Cloud Linux 2/3

      • AlmaLinux 8.x及更高版本

      • Anolis OS 7.x/8.x

      • CentOS 7.x/8.x

      • CentOS Stream 8及更高版本

      • Debian 8.x及更高版本

      • Fedora 33/34

      • OpenSUSE 15.x/42.x

      • Rocky Linux 8.x及更高版本

      • SUSE Linux Enterprise Server 12.x/15.x

      • Ubuntu 16.04/18.04/20.04/24.04

      说明

      表中未列出的操作系统发行版本均不支持,对于不支持的发行版本上的操作系统诊断运行效果不做保证。

使用场景

推荐您在以下场景中使用实例健康诊断功能了解实例健康状态:

  • 定位解决问题:在操作实例过程中遇到问题,需要进行针对性的问题诊断以寻求修复方法,例如网络连接不通。

  • 定期全面检查:在日常运维中,需要全面了解实例整体的健康情况,以便及时发现并处理异常情况,避免影响业务。

说明

实例健康诊断功能为各诊断项提供了问题说明和修复建议。更多信息,请参见诊断项与诊断问题说明

操作步骤

ECS管理控制台

创建实例诊断

  1. 登录ECS管理控制台

  2. 在左侧导航栏,单击自助问题排查

  3. 在顶部菜单栏左上角处,选择地域。

  4. 单击实例问题排查页签。

  5. 实例问题排查页面,选择问题类型、实例ID及时间范围,然后单击开始排查

    说明

    同一台实例只能同时存在一个进行中的诊断任务,且前后两次诊断的时间间隔需要超过5分钟。

    问题类型

    说明

    实例性能问题

    诊断ECS实例CPU负载高、内存负载高、带宽负载高、磁盘BPS/IOPS高,或者实例性能受损等问题。

    实例无法连接或启动异常

    诊断VNC无法远程连接、SSH无法连接、实例处于运行状态,实例操作系统无法启动等问题。

    网络问题

    诊断ECS实例的网络性能受损,或者ping不通等问题。

    实例操作未生效

    诊断ECS实例的变更操作未生效问题,例如云盘扩容实际未生效。

    资源配额不足

    诊断ECS实例的资源配额是否达到上限,例如云盘容量配额不足、镜像数量配额不足、弹性网卡创建数达到上限、安全组总数达到上限等问题。

    安全风险检测

    诊断ECS实例是否存在安全风险,例如系统漏洞、安全告警、恶意进程等。

    实例费用及安全行为审计

    对ECS实例状态类、实例费用类、安全组相关等操作行为审计、追溯。

    说明

    使用实例费用及安全行为审计诊断功能时需要拥有实例自助问题排查的关联角色及权限。更多信息,请参见服务关联角色AliyunServiceRoleForECSSelfService

    实例设备检测

    检测实例GPU等设备是否正常运行。

    其他问题

    直接输入问题的详情。

    具体的诊断项以页面显示为准,您可以在诊断报告中单击诊断项详情下的各页签查看具体的诊断项及其诊断进展。诊断过程大概需要几分钟,您可以在当前页面查看进展及等待诊断报告,也可以关闭对话框后在诊断任务列表中查看诊断进展和报告。

  6. 查看诊断报告。

    诊断报告中包含以下信息:

    • 基本信息:包括资源ID、报告ID和诊断时间。

    • 诊断结果:如果各项检查均正常,则显示为通过。如果存在异常诊断项,则显示具体的异常诊断项并提供相应的修复方案,您可以参考修复方案解决问题。

    • 诊断项详情:包括各项诊断项的结果,级别分为严重、警告和通过。

    说明

    使用实例费用及安全行为审计诊断功能时,您还可以通过以下方式获取更多信息:

    您可以基于诊断报告,自助解决对应问题。具体说明如下:

查看诊断历史

如果想要了解实例的历史健康情况,您可以查看实例的诊断历史。

  1. 登录ECS管理控制台

  2. 根据需要选择一种方式查看实例的诊断历史。

    • 查看单台实例的诊断历史

      1. 在左侧导航栏,选择实例与镜像 > 实例

      2. 在顶部菜单栏处,选择地域。

      3. 找到待查看的实例,根据需要选择一种方式查看该实例的诊断历史。

        • 在实例对应操作列中选择更多 > 运维和诊断 > 实例问题排查历史

        • 单击实例ID进入该实例的详情页面,单击健康诊断页签。

    • 查看所有实例的诊断历史

      1. 在左侧导航栏,单击自助问题排查

      2. 在顶部菜单栏处,选择地域。

      3. 单击实例问题排查页签,然后单击查看历史

      4. 检测历史页面,单击实例健康诊断页签,并输入资源ID或报告ID,然后单击search图标。

    说明

    在诊断历史报告列表中,您可以单击诊断状态右侧的筛选图标,选择相应的状态进行筛选。

  3. 对于单条诊断历史,您可以单击查看报告查看详细报告内容,或者单击重新诊断重新发起一次诊断。

OpenAPI

  1. 查询诊断指标。

    您可以调用DescribeDiagnosticMetrics查询诊断指标。更多已发布的诊断指标列表信息,请参见诊断项与诊断问题说明

  2. 管理诊断指标集合。

    诊断指标集合分为以下两种,您可以使用诊断指标集合创建诊断报告。

    • 公共诊断指标集合:公共诊断指标集合是由用户常见问题整理而来,帮助您更方便地使用诊断能力。

      公共诊断指标集合由阿里云进行维护,用户无法修改。您可以通过DescribeDiagnosticMetricSets查询公共诊断指标集合。当前支持的公共诊断指标集合如下所示。

      指标名称

      说明

      使用场景

      dms-instancedefault

      默认诊断集合

      用于对ECS进行全面的检查。

    • 自定义诊断指标集合:如果您只关注部分诊断指标,可以通过CreateDiagnosticMetricSet灵活创建诊断指标集合。创建完成后,可以通过DescribeDiagnosticMetricSets查询已创建的诊断指标集合。

      当返回结果如下所示时,说明已创建名称为test的自定义诊断指标集合。

      {
        "RequestId": "6AF68D67-601A-5278-AB10-4195CCA7****",
        "MetricSets": [
          {
            "Type": "User",
            "MetricIds": [
              "Instance.ControllerError",
              "Instance.CPUException",
              "Instance.CPUSplitLock"
            ],
            "MetricSetId": "dms-uf6ck3iljpbft15i****",
            "ResourceType": "instance",
            "MetricSetName": "test"
          }
        ]
      }
  3. 创建诊断报告。

    您可以通过CreateDiagnosticReport使用创建的诊断指标集合或者公共诊断指标集合创建诊断报告。

    当返回结果如下所示时,说明已成功创建诊断报告。

    {
      "RequestId": "A1283ACE-2F19-54B9-9464-401EBD1A****",
      "ReportId": "dr-uf6aacg5g2fjp64i****"
    }
  4. 查询诊断报告。

    您可以通过DescribeDiagnosticReports查询报告的详情,报告会返回诊断集每个诊断指标的诊断结果。更多诊断项结果详情,请参见诊断项与诊断问题说明

    当返回结果如下所示时,说明诊断正常,没有发现问题。

    {
      "RequestId": "20381C19-C31B-52AE-AC9B-8AD672E4****",
      "NextToken": "",
      "Reports": [
        {
          "Status": "Finished",
          "EndTime": "2022-09-07T15:36Z",
          "ResourceId": "i-uf653eye7pkftni****",
          "MetricSetId": "dms-uf6ck3iljpbft15i****",
          "Issues": [],
          "StartTime": "2022-09-05T15:36Z",
          "CreationTime": "2022-09-07T15:36Z",
          "ReportId": "dr-uf6aacg5g2fjp64i****",
          "ResourceType": "instance",
          "Severity": "Normal",
          "FinishedTime": "2022-09-07T15:36Z"
        }
      ]
    }

相关文档